package com.hound.config.datasource;

import java.util.ArrayList;
import java.util.List;

/**
 * Created by lupeng on 2018/4/1.
 */
public class DataSourceContextHandler {

    private static final ThreadLocal<String> contextHolder = new ThreadLocal<String>();

    private static List<String> dataSourcesIds = new ArrayList<>();

    /**
     * 存放数据源
     * @param dataSourceId 数据源名字
     */
    public static void setDataSourceId(String dataSourceId){
        DataSourceContextHandler.dataSourcesIds.add(dataSourceId);
    }

    /**
     * 设置当前使用的数据源
     * @param dataSourceType 数据源
     */
    public static void setCurrentDataSourceType(String dataSourceType){
        contextHolder.set(dataSourceType);
    }

    /**
     * 获得当前使用的数据源
     * @return
     */
    public static String getCurrentDataSourceType(){
        return contextHolder.get();
    }

    /**
     * 是否包含数据源
     * @param dsId 数据源名字
     * @return boolean
     */
    public static boolean containsDataSource(String dsId) {
        return dataSourcesIds.contains(dsId);
    }

    /**
     * 清除缓存
     */
    public static void cleanCourrentDataSourceType() {
        contextHolder.remove();
    }
}
